package com.start.shop.modules.service;

import com.github.pagehelper.PageInfo;
import com.start.shop.api.vo.order.OrderAddress;
import com.start.shop.modules.repository.entity.Order;

public interface IOrderService {
	
	/**
	 * 创建订单
	 */
	Order make(int userId, int skuId, int num, int couponId, String orderChannel, OrderAddress orderAddress, int agentId);

	/**
	 * 查询订单信息
	 */
	Order getOrderByOrderNo( int userId, String orderNo);
	
	/**
	 * 查询订单
	 */
	PageInfo<Order> getOrderByStatus(int userId, String orderStatus, String payStatus, int pageSize, int page, String orderChannel);
	
	/**
	 * 更新订单为支付中
	 */
	void orderPayCheck(int userId, String orderNo);

	
	/**
	 * 订单更新订单为付款成功
	 */
	void orderPaySuccess(int userId, String orderNo, String payNo);

	
	/**
	 * 取消订单
	 */
	int orderCancel(int userId, String orderNo);
	
	
	/**
	 * 订单发货
	 * 更新订单为已发货
	 * 1.更新为已发货   2.更新发货单号
	 */
	void orderDelivery(int userId, String orderNo, String deliveryNo);
	
	
	/**
	 * 订单确认
	 */
	void orderConfirm(int userId, String orderNo);
	
	/**
	 * 检查并关闭未支付订单
	 */
	void orderCancelBat();
	
	/**
	 * 批量确认订单订单
	 */
	void orderConfirmBat();

	
}
